package cn.catsdad.service.api;

import cn.catsdad.base.service.api.IBaseCrudService;
import cn.catsdad.dto.DocumentDTO;
import cn.catsdad.vo.UploadVo;

import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 附件service
 *
 * @author xuyonglong
 * @version V1.0 2023/4/25
 */
public interface DocumentService extends IBaseCrudService<DocumentDTO, Long> {

    /**
     * 上传文件
     *
     * @param uploadVo 传输参数
     */
    List<DocumentDTO> uploadFiles(UploadVo uploadVo);

    /**
     * 文件下载
     *
     * @param documentId 文件id
     * @param response   响应流
     */
    void downloadFile(Long documentId, HttpServletResponse response);

    /**
     * 根据关联对象id查询
     *
     * @param objectIds 关联对象id集合
     * @param objectKey 关联对象类型
     * @return 文档
     */
    Map<Long,List<DocumentDTO>> queryByObjectIds(Collection<Long> objectIds, String objectKey);

}
